Computer-based systems require firmware (code) to provide operating programs for processors to execute. Operating programs often consist of several parts, including an operating system, a loader, diagnostics, utilities, and one or more applications. Many computer-based systems provide a means to change firmware in the field. Firmware upgrades are commonly utilized to provide newer firmware versions with fixes to firmware bugs and/or additional features and functionality. Upgrades help to prevent system obsolescence and therefore maintain system longevity.
Occasionally, a newer firmware version is not preferable to an older firmware version. Sometimes, a newer firmware version introduces bugs that were not present in an older firmware version. Other times, features present in a new version of firmware are not compatible with specific hardware of the computer-based system. In both cases, the system may experience a failure even though a newer version of firmware was installed. Therefore, it would be desirable to downgrade the firmware to a more stable older version rather than continue with the newer version and associated problems.